package Singleton;

/**
 * @Author: 蔡翔
 * @Date: 2019/12/5 11:12
 * @Version 1.0
 *
 * 枚举类型 单例模式的 序列化机制 ，
 * 枚举类型 天然的 可序列化机制，强有力的保证不会多次实例化情况。
 * 而且在多线程中，能保证多线程中用的是一份实例，
 */
public enum  EnumInstance {
    INSTANCE{
        //这里的每个instance 都有外部的特征。
        @Override
        protected void printTest(){
            System.out.println("cx print test");
        }
    };
    //如果没有abstract 这个声明 外部是调用不到printTest 这个方法的。
    protected abstract void printTest();

    private Object data;

    public Object getData() {
        return data;
    }
    public void setData(Object data) {
        this.data = data;
    }
    public static EnumInstance getInstance(){
        return INSTANCE;
    }
}
